WiFi is a dominant means of connectivity, and yet despite its wide use by consumers, it remains a performance bottleneck for a vast majority of users. There are a variety of reasons that performance suffers, including varying channel quality from mobility of devices, interference among devices, and physical layer characteristics such as multipath, fading, and the rate anomaly problem. In fact, although existing commodity routers permit prioritization of sessions, they are still generally unable to maintain any guaranteed Quality of Service (QoS), even for those prioritized sessions. Even if QoS can be guaranteed at the physical or link layer, it does not translate into throughput or goodput (i.e., the rate of successful transmission after ignoring re-transmissions and any other error correction) at the transport layer due to link layer retransmissions. The impact of this unreliability is even more pronounced as WiFi is increasingly the only shared broadcast link on an end-to-end path, whereas almost everything else is switched.
Unfortunately, existing mechanisms do not sufficiently compensate for these undesirable characteristics, resulting in unpredictable performance.